#include <QCoreApplication>
#include <iostream>
#include "dog97.h"
#include "dog96.h"
using namespace std;

void pubfunc( Dog95 dog  ){
    cout << "Age:" << dog.age <<endl;
   // cout << "Price:" <<dog. <<endl;
}




class Dog98{
public:
    int age;
    void showAge(){
        cout << "AGE:"  << age <<endl;
    }
};

int main4(int argc, char *argv[])
{
    Dog97  *d1 ;
    d1 =nullptr;
    // d1->showAge();
    d1->nothisFunc();
   // Dog97::nothisFunc(null);


    // Dog97 d1;
    // d1.showAge();
    // Dog97 d2;
    // d2.showAge();

    //Dog97::showAge(d1);
    return 0;
}


int main2(int argc, char *argv[])
{
    Dog98 d;
    d.showAge();
    Dog98 d1;
    d1.showAge();
    return 0;
}





// 类对象        月饼模具
// 类的对象 【类实例】 月饼
class Dog99{
public:
    // 类成员 类名::成员名
    //  类读入内衬时便分配内存
    static int INDEX ;
    // 实例成员  对项名.成员名
    int  age =1; //  堆区
    void incr(){
        INDEX++;
        age++;
        cout << "INDEX = " << INDEX <<endl;
        cout << "AGE:"  << age <<endl;
    }
    // 类成员 类名::成员名
    // 类成员函数只能使用类成员【属性，函数】
    // 但是不能使用实例成员
    static void staticfunc(){ //  没有this指针
        INDEX++;
        // age++;
        cout << "INDEX = " << INDEX <<endl;
        // cout << "AGE:"  << age <<endl;
    }
};
int Dog99::INDEX  =0;
int main1(int argc, char *argv[])
{
    Dog99::INDEX++;
    Dog99::staticfunc(); // 推荐方法

    Dog99 d1;
    d1.INDEX++;
    d1.staticfunc();


    // Dog99 d;
    // d.incr();
    // d.incr();
    // Dog99 d1;
    // d1.incr();
    // d1.incr();
    // return 1;
}
